import router from '@/router/index'
const tool = {
  // 退出登录
  clearSession: () => {
    let code = localStorage.getItem('code')
    localStorage.clear()
    localStorage.setItem('code', code)
    router.push({ path: `/login?code=${code}` })
  },
  getUser(){
    return  JSON.parse(localStorage.getItem('userData'))
  },
  /**
   * json深拷贝
   * @param {object} data
   * @returns {any}
   */
  copyJSON(data) {
    return JSON.parse(JSON.stringify(data))
  },
  /**
   * 字符串替换为星号
   * @param {string} str 字符串
   * @param {int} left_reserve 左边保留位数
   * @param {int} right_reserve 右边保留位数
   * @returns {string}
   */
  stringReplaceStar(str,left_reserve, right_reserve){
    return str.substr(0, left_reserve)+'****'+str.substr(-right_reserve)
  },
  /**
   * 仅限金额输入
   * ~~~
   * 如果输入值非金额，会被强制置空仅保留金额部分
   * ~~~
   * @param {object} obj 数据所在对象；因为对象是引用类型，内部改变也会影响外面。
   * @param {string} key 数据字段key
   * @param {string} e 数据
   */
  inputAmount(obj, key, e){
    if (!e){return}
    obj[key] = e.replace(/[^\d.]/g, ""). // 先把非数字的都替换掉，除了数字和.
        replace(/^\./g, ""). //必须保证第一个为数字而不是.
        // replace(/\.{2,}/g, "."). //保证只有出现一个.而没有多个.
        replace(/^(\-)*(\d+)\.(\d{0,2}).*$/, '$1$2.$3'); // 只能输入两位小数
  },
  /**
   * 仅限整数
   * ~~~
   * 非整数会截取为整数
   * ~~~
   * @param obj
   * @param key
   * @param e
   */
  inputInteger(obj, key, e){
    if (!e){return}
    let n = parseInt(e)
    obj[key] = n>0? n : 0;
  }

}
export default tool

